<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">


<head th:replace="~{/admin/_fragments:: head(~{::title})}">

     <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>aichat</title>
    <link rel="stylesheet" href="../../static/semantics-dist/semantic.min.css" th:href="@{/semantics-dist/semantic.min.css}">
    <link rel="stylesheet" href="../../static/css/me.css" th:href="@{/css/me.css}">

    <script src="../../static/js/jquery-3.7.1.min.js" th:src="@{/js/jquery-3.7.1.min.js}" ></script>
    <script src="../../static/semantics-dist/semantic.min.js" th:src="@{/semantics-dist/semantic.min.js}" ></script>
    <script src="../../static/js/echarts.min.js" th:src="@{/js/echarts.min.js}" ></script>
    <!--<head>-->
</head>
<body>


<nav th:replace="~{admin/_fragments :: menu(5)}"  class="ui   attached segment m-padded-tb-mini m-shadow-small"   style="z-index: 999">
    <div class="ui container"  >
        <div class="ui   secondary stackable menu">
            <a href="#" th:href="@{/admin/blogs}">
                <h3 class="ui  teal header item" ><i class="ui clipboard outline icon"></i>博客管理</h3></a>
            <a class="m-item m-mobile-hidden  item"  th:classapend = "${(n == 1) ? 'active' : ''}" th:href="@{/admin/blogs/input}"> <i class="ui  home icon">  </i>发文</a>
            <a class="m-item m-mobile-hidden item"  th:classapend = "${(n == 2) ? 'active' : ''}" th:href="@{/admin/todolist}"> <i class="ui tasks  icon">  </i>TODO</a>
            <a class="m-item m-mobile-hidden item"  th:classapend = "${(n == 3) ? 'active' : ''}" th:href="@{/admin/chart}"><i class="ui chart bar icon">  </i> 图表 </a>
            <a class="m-item m-mobile-hidden item"  th:classapend = "${(n == 5) ? 'active' : ''}" th:href="@{/admin/tags}"><i class="ui compass icon">  </i> 机器人</a>
            <a class="m-item m-mobile-hidden item"  th:classapend = "${(n == 4) ? 'active' : ''}" th:href="@{/admin/tags}"><i class="ui play  icon">  </i> 视频 </a>

            <a class="m-item m-mobile-hidden item"  th:classapend = "${(n == 6) ? 'active' : ''}" th:href="@{/}"><i class="ui pencil icon">  </i>主页展示</a>
            <div class="right m-mobile-hidden menu">
                <!--                    <div class="ui dropdown item">-->
                <!--                        <img class="ui avatar image" src="../../static/images/mio3.jpg" th:src="@{/images/mio3.jpg}">-->
                <!--                        长野原美绪-->
                <!--                        <i class="dropdown icon"></i>-->
                <!--                        <div class="menu">-->
                <!--                            <a href="#" class="item" th:href="@{/admin/user}">管理账号</a>-->
                <!--                            <a href="#" class="item" th:href="@{/admin/logout}">退出登录</a>-->
                <!--                        </div>-->
                <!--                    </div>-->
                <div class="ui dropdown item">
                    <img class="ui avatar image" src="../../static/images/mio3.jpg" th:src="@{${session.user.avatar}}" >

                    <a href="#" class="header" th:text="${session.user.nickname}"> </a>
                    <i class="dropdown icon"></i>
                    <div class="menu">
                        <a href="#" class="item" th:href="@{/admin/user}">管理账号</a>
                        <a href="#" class="item" th:href="@{/admin/logout}">退出登录</a>
                    </div>
                </div>
            </div>
        </div>

    </div>
    <a href="#" class="ui menu toggle m-mobile-show   button">
        展开
        <i class="sidebar  icon m-top-right "></i>
    </a>

</nav>


<!--中间内容-->
<div  class="m-container-small m-padded-tb-big ">


    <div class="ui segment">
        <div class="ui vertical divided stackable aichatlist container" id="aichatlist">

            <div class="ui segment">
                <div class="ui divided grid robotchat">

                    <div class="two wide column">
                        <i class="ui compass icon">  </i> AiChat
                    </div>
                    <div class="fourteen wide column">
                       你好哦
                    </div>
                </div>
            </div>


        </div>

    </div>

    <div class="ui fluid segment" id="inputSegment">
        <h4>聊天机器人</h4>
        <div class="ui form m-padded-tb-small">
            <div class="field">
                <textarea id="messageInput" placeholder="输入您的问题..." style="height:3em;max-height: 10em;"></textarea>
            </div>
            <button class="ui senduChatButton blue button">发送</button>
            <div class="ui updateChatButton teal button" id="updateChatButton">更新</div>
            <label ></label>
        </div>
        <div class="success message">
            <div class="m-padded-tb-small m-text-big">
                采用异步刷新方式，回答获取需要手动更新哦。
                为了节省token，不开放使用记忆功能。一次发言尽量发全。（记忆功能使得token消耗速度是o（n）级别的变为o（n²）级别的）
                <div>按ctrl+enter也可以快速发送哦</div>
            </div>
        </div>

    </div>
</div>

<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
</body>
<!--底部footer-->
    <script>
        // 当文档加载完毕时，调整输入框位置到底部

        $(document).ready(function() {
            $('.menu.toggle').click(function() {
                $('.m-item').toggleClass('m-mobile-hidden');
            });
        });
        $('.ui.dropdown')
            .dropdown({
                // you can use any ui transition
                // transition: 'drop',
                on:  'hover'
            })

        $(document).ready(function() {
            // 为更新按钮绑定点击事件
            $('#updateChatButton').click(function() {

                var updateButton = $('#updateChatButton');
                var taskid =  updateButton.attr('data-id')
                // 发送GET请求
                $.get('/admin/aichatmore', { taskid: taskid }, function(data) {
                    // 弹出返回的数据
                    // alert(data);
                    var responseObject = JSON.parse(data);
                    var choices = responseObject.data.choices;

                    var firstChoiceMessage = choices[0].message;

                    var content = firstChoiceMessage.content;


                    // alert(content); // 弹出内容

                    renderChatMessage("AiChat",content)
                })
                    .fail(function() {
                        // 如果请求失败，弹出错误信息
                        alert('请求失败，请稍后再试！');
                    });
            });
        });


        $(document).ready(function() {
            // 监听保存按钮的点击事件
            $('.senduChatButton').click(function() {
                // 获取文本框内的信息
                var message = $('#messageInput').val();

                // 向后端发送文本框内的信息（你需要使用适当的 AJAX 请求来实现这一步）
                $.ajax({
                    type: 'POST', // 选择你的请求类型，这里是 POST
                    url: '/admin/aichat', // 后端接收请求的地址
                    data: {
                        message: message // 将文本框内的信息作为数据发送
                    },
                    success: function(response) {
                      var taskid=  response
                        // alert(taskid)
                        var updateButton = $('#updateChatButton');

                        // 设置按钮的data-id属性
                        updateButton.attr('data-id', taskid);
                        // alert(updateButton.attr('data-id'))
                    },
                    error: function(xhr, status, error) {
                        console.error('请求失败：', error);
                    }
                });

                // 向页面中添加用户发送的消息
                renderChatMessage('User', message); // 在页面中渲染用户发送的消息

                // 清空文本框
                $('#messageInput').val('');
            });
        });

        // 渲染聊天消息的函数
        function renderChatMessage(role, message) {
            // 创建消息元素
            var chatSegment = $('<div class="ui segment">');
            var chatGrid = $('<div class="ui divided grid">');
            var iconColumn = $('<div class="two wide column">').html('<i class="ui ' + (role === 'User' ? 'user' : 'compass') + ' icon"></i> ' + role);
            var messageColumn = $('<div class="fourteen wide column">').text(message);

            // 将消息元素添加到聊天列表中
            chatGrid.append(iconColumn);
            chatGrid.append(messageColumn);
            chatSegment.append(chatGrid);

            // 将消息添加到合适的位置

                $('.aichatlist').append(chatSegment); // 将机器人的回复添加到机器人聊天框中

        }

        $(document).ready(function() {
            // 监听文本框的键盘按下事件
            $('#messageInput').keydown(function(event) {
                // Ctrl+Enter 的键码分别是 17 (Ctrl) 和 13 (Enter)
                if (event.ctrlKey && event.which === 13) {
                    // 阻止默认的回车键行为
                    event.preventDefault();

                    // 触发发送按钮的点击事件
                    $('.senduChatButton').trigger('click');
                }
            });

            // 其他代码...
        });



    </script>


<script>

    $('.menu.toggle').click(function () {
        $('.m-item').toggleClass('m-mobile-hide');
    });

    $('.ui.dropdown').dropdown({
        on : 'hover'
    });

    $('.ui.form').form({
        fields : {
            title : {
                identifier: 'name2',
                rules: [{
                    type : 'empty',
                    prompt: '请输入信息'
                }]
            }
        }
    });

</script>

</html>